<?php
/********************************************************
** Copyright 2010-2013. Todos los derechos reservados. **
** Desarrollado y Gestionado por:					   **
** Sugey Quintero (Analista)						   **
** José G. De Freitas (Programador)					   **
** Klaudia Uribe (Diseñadora Web)					   **
** Cesar Isturiz (Diseñador Web)					   **
**				S E A  v1.0							   **
*********************************************************/

session_start();
include("conexion.php");

	if (isset($_SESSION['name']) and isset($_SESSION['tiempo'])) {
        include("Tiempo.php");
	date_default_timezone_set('America/Caracas'); setlocale(LC_TIME, 'spanish');
	$usuario = $_SESSION['name'];
	$fecha = date("Y-m-d H:i:s");
	$auditoria = mysql_query("INSERT INTO auditoria SELECT '$usuario', '$fecha' , 'Restaurar Base de Datos Liceo' ");

    }else {
		echo "<script>alert('Debe ingresar al sistema primero');</script>";
		echo "<script>document.location.href='index.php';</script>";
	}

$db_server		= "127.0.0.1"; 
$db_name		= "mydb"; 
$db_username	= "root"; 
$db_password	= "20067522"; 

// Direccion de mi servidor
$host  = $_SERVER['HTTP_HOST'];
$uri  = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$base = "http://" . $host . $uri . "/";

// inicio, carga de backup en el servidor
$status = "";
if ($_POST["action"] == "upload") {
	// obtenemos los datos del archivo 
	$tamano = $_FILES["file"]['size'];
	$tipo = $_FILES["file"]['type'];
	$archivo = $_FILES["file"]['name'];
	
	if ($archivo != "") {
		// guardamos el archivo a la carpeta
		$destino =  "../sistema_liceo/BackupDB/".$archivo;
		if (copy($_FILES['file']['tmp_name'],$destino)) {
			$status = "<td>Subido al servidor, archivo: <b>".$archivo."</b></td>";
			//Nombre del archivo
			$filename = "BackupDB/".$archivo;
		} else {
			$status = "Error al subir el archivo";
		}
	} else {
		$status = "Error al subir archivo";
	}
}
//fin

//------------------------------------------------------------------------------------------
//  No tocar
	error_reporting( E_ALL & ~E_NOTICE );
	define( 'Str_VERS', "1.1.1" );
	define( 'Str_DATE', "18 de Marzo de 2005" );
//------------------------------------------------------------------------------------------
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Restauraci&oacute;n DB</title>
<link rel="shortcut icon" type="image/x-icon" href="../favicon.ico">
<link href="style.css" rel="stylesheet" type="text/css" />
<!-- calendario-->
<link rel="stylesheet" type="text/css" href="src/css/jscal2.css" />
<link rel="stylesheet" type="text/css" href="src/css/border-radius.css" />
<link rel="stylesheet" type="text/css" href="src/css/steel/steel.css" />
<script type="text/javascript" src="src/js/jscal2.js"></script>
<script type="text/javascript" src="src/js/lang/es.js"></script>
<!-- fin calendario-->
<!-- botones-->
<link type="text/css" href="js/css/smoothness/jquery-ui-1.8.16.custom.css" rel="Stylesheet" />      
<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.16.custom.min.js"></script> 
<script>
var j$ = jQuery.noConflict();
j$(document).ready(function(){
j$(".button").button();
});

j$(function(){
	j$('#menu li a').click(function(event){
		var elem = j$(this).next();
		if(elem.is('ul')){
			event.preventDefault();
			j$('#menu ul:visible').not(elem).slideUp();
			elem.slideToggle();
		}
	});
});
</script>
<!-- fin botones-->
</head>

<body>
<div id="wrap">
<div id="header">
<div id="hora">
<?php include("Hora.php"); ?>
</div>
<div id="topnav">
	<?php include("MenuSuperior.php"); ?>
</div>
</div>
<div id="content">
<div id="left">
<div class="post">
<div class="post_h">

</div>

<div class="postcontent">

<blockquote><h2 align="center">RESTAURACI&Oacute;N DE BASE DE DATOS</h2></blockquote>
<fieldset>
<legend align=left><b><font size=2>INFORMACION</font></b></legend>
<table width=100% cellspacing=15 cellpadding=3 border=0>
<?php

	echo "<form action='Restaurar_DB.php' method='POST' enctype='multipart/form-data'>"; 
	echo "<tr><td>Seleccione el backup a restaurar: "; 
	echo "<input type=file name='file' id=file>&nbsp;";
	echo "<input name=action type=hidden value=upload />";
	echo "<input class=button type=submit name=sub value=Restaurar></td></tr> </form>";
	echo $status;
	
	@set_time_limit( 0 );

	$error = false;

	if ( !@function_exists( 'gzopen' ) ) {
		$hay_Zlib = false;
		//echo( "<tr><td>Ya que no está disponible Zlib, usaré el BackUp de la Base de Datos: '$filename'</td></tr>" );
	}
	else {
		$hay_Zlib = true;
		//$filename = $filename . ".gz";
		//echo( "<tr><td>Ya que está disponible Zlib, usaré el BackUp de la Base de Datos: '$filename'</td></tr>" );
	}
if($_POST["action"] == "upload"){ //puse esto para que no mostrara siempre el msj de q no se encontraba el archivo
	if( !$file = @fopen( $filename,"r" ) ) { 
	    echo ("<tr><td>Lo siento, no se encontr&oacute; o no se puede abrir: '$filename'.</td></tr>");
	    $error = true;
	}
	else { 
	    if( fseek($file, 0, SEEK_END)==0 )
	        $filesize_comprimido = ftell( $file );
	    else { 
	       echo ("<tr><td>Lo siento, no se pudo obtener las dimensiones de '$filename'.</td></tr>");
	       $error = true;
	    }
	 	  fclose( $file );
	}

	if ( !$error ) {
		if( $hay_Zlib ) {
			if ( !$file = @gzopen( $filename, "rb" ) ) { 
				echo( "<tr><td>Lo siento, no se encontr&oacute; o no se puede abrir: '$filename'.</td></tr>" );
				$error = true;
			}
			else {
				gzrewind( $file );
			}
		}
		else {
			if ( !$file = @fopen( $filename, "rb" ) ) { 
				echo( "<tr><td>Lo siento, no se encontr&oacute; o no se puede abrir: '$filename'.</td></tr>" );
				$error = true;
			}
			else {
				rewind( $file );
			}
		}
	}

	if (!$error) { 
	    $dbconnection = @mysql_connect( $db_server, $db_username, $db_password ); 
	    if ($dbconnection) 
	        $db = mysql_select_db( $db_name );
	    if ( !$dbconnection || !$db ) { 
	        echo( "<tr><td>Lo siento, la conexion con la Base de datos ha fallado: ".mysql_error()."</td></tr>" );
	        $error = true;
	    }
	    else {
	        echo( "<tr><td>Se ha establecido conexion con la Base de datos.</td></tr>" );
	    }
	}

	if (!$error) { 
	    $result = mysql_query("SHOW TABLES FROM $db_name");
			if (!$result) {
					print "<tr><td>Error, no se pudo obtener la lista de las tablas.</td></tr>";
					print '<tr><td>MySQL Error: ' . mysql_error(). '<br>';
					$error = true;
			}
			else {
					// $count es el número de tablas en la base de datos
					$count = mysql_num_rows($result);
					if( !$count ) {
							echo "<tr><td>No ha sido necesario borrar la estructura de la Base de datos, estaba vacía.</td></tr>";
					}
					else {
							while ($row = mysql_fetch_row($result)) {
									$deleteIt = mysql_query("DROP TABLE $row[0]");
									if( !$deleteIt ) {
											print "<tr><td>Lo siento, error al borrar la tabla $row[0].</td></tr>";
											$error = true;
											break;
									}
							}
							echo "<tr><td>Se ha borrado la estructura de la Base de Datos.</td></tr>";
					}
					mysql_free_result($result);
			}
	}

	if( !$error ) { 
	    $query = "";
	    $last_query = "";
	    $total_queries = 0;
	    $total_lineas = 0;
	
			$t_start = time();

			while( 1 ) {
				if( $hay_Zlib )
					$seacabo = gzeof( $file ) OR $error;
				else
					$seacabo = feof( $file ) OR $error;
				if( $seacabo )
					break;
				if( $hay_Zlib )
					$statement = gzgets( $file );
				else
					$statement = fgets( $file );
					
	        $statement = trim( $statement );
	        $total_lineas++;
	        // no se procesan comentarios ni lineas en blanco
	        if ( $statement=="--" || $statement=="" || strpos ($statement, "#") === 0) { 
	            continue;
	        }
	        // pasa a query
	        $query .= $statement;
	        // ejecuta query si esta completo
	        if( preg_match("([;]$)", $statement ) ) { 
	            if ( !mysql_query( $query, $dbconnection) ) { 
	                echo("<tr><td>Error en statement: $statement</td></tr>" );
	                echo("<tr><td>Query: $query</td></tr>");
	                echo("<tr><td>MySQL: ".mysql_error()."</td></tr>" );
	                $error = true;
	                break;
	            }
	            $last_query = $query;
	            $query = "";
	            $total_queries++;
	        }
	    }

			if( $hay_Zlib )
				$file_offset = gztell($file);
	    else
	    	$file_offset = ftell($file);
	
	    echo( "<tr><td>- L&iacute;neas procesadas........................................ $total_lineas</td></tr>" );
	    echo( "<tr><td>- Consultas procesadas................................... $total_queries</td></tr>" );
	    //echo( "<tr><td>- Último Query procesado.................... '$last_query'</td></tr>" );
			if( $hay_Zlib ) {
	    	echo( "<tr><td>- Base de Datos comprimida............................ $filesize_comprimido bytes</td></tr>");
	    	echo( "<tr><td>- Base de Datos descomprimida y procesada... $file_offset bytes</td></tr>" );
	  	}
	  	else {
	    	echo( "<tr><td>- Base de Datos procesada................... $file_offset bytes</td></tr>" );
	  	}

			$t_now = time();
			$t_delta = $t_now - $t_start;
			if( !$t_delta )
				$t_delta = 1;
			$t_delta = floor(($t_delta-(floor($t_delta/3600)*3600))/60)." minutos y "
			.floor($t_delta-(floor($t_delta/60))*60)." segundos.";
			echo( "<tr><th>Se ha completado la Restauraci&oacute;n de la Base de Datos en $t_delta</th></tr>" );
	}

	if ( $dbconnection )
	    mysql_close();
	if ( $file )
		if( $hay_Zlib )
			gzclose($file);
	   else
	    fclose($file);
}
//------------------------------------------------------------------------------------------
//  END
?>
</table>
</form>
</fieldset>

<div class="post">
<span></span></div>

<div id=botonera align=center>
	<a class=button href='index.php'>Volver</a>
</div>

</div>
<div class="post_b">
<span></span></div>
</div>


</div>

<div class="post">
<div class="post_h">

</div>


</div>

<?php include("Menu.php"); ?>

<div class="clear"></div>
</div>
<div id="pagebottom"></div>

<div id="footer">
<P>&reg; Derechos Reservados @ CopyRight. 2011-2012</P>
<p>Programadores: Quintero E, Isturiz C, Uribe C, De Freitas J.</p>
</div>
</div>
</body>
</html>
